package com.dmz.workflow.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.dmz.workflow.dto.ExamineGroup;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class IntermediateNodeVo implements Serializable {

    private static final long serialVersionUID = -2362391723087023328L;

    /**
     *  主键
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    /**
     * 节点id
     */
    private String nodeId;

    /**
     * 节点类型
     */
    private String nodeType;

    /**
     *节点标题
     */
    private String nodeTitle;

    /**
     *是否允许发起人添加人员 （是否有选择符号） 1,禁止 2，允许
     */
    private Integer statusType;

    /**
     * 节点顺序
     */
    private Integer sort;

    /**
     * 是否多选 1：自选一个人，2：自选多个人
     */
    private Integer isCheckbox;

    /**
     * 流程实例id
     */
    private String processInstanceId;

    /**
     *  创建时间
     */
    private LocalDateTime createTime;

    /**
     *  修改时间
     */
    private LocalDateTime updateTime;

    /**
     *  是否到达此节点 （0:未流转，1：正在流转，2：已流转）
     */
    private Integer isArrive;


    /**
     * 任务id
     */
    private String taskId;


    /**
     * 评论人员信息
     */
    private List<DiscussionVo> discussionVOList;


    /**
     * 用户头像,用户名称、用户id
     */
    private List<StaffInfoVo> staffInfoList;

    /**
     * 活动状态 （1：依次审批，2：会签，3：或签）
     */
    private Integer activity;

    /**
     * 审批人为空时 （0：自动通过 1：自动转交）
     */
    private Integer isEmpty;

    /**
     * 是否多人审批
     */
    private Integer isMultiple;

    /**
     * 抄送节点是否允许发起人自选 （0：允许 1：不允许）
     */
    private Integer isOptional;

    /**
     * 范围 1：全公司，2：指定成员
     */
    private Integer scope;

    /**
     * 状态：1为指定成员(候选人)，2为发起人自选 4.部门负责人 5.角色
     */
    private Integer status;

    /**
     * 审批意见
     */
    private String content;

    /**
     * 表单权限(1 可编辑 2 只读 3 隐藏)
     */
    private String formPermission;

    /**
     * 人员信息
     */
    private List<ExamineGroup> examineGroups;

    /**
     * 审批提醒：1 提醒 0 不提醒
     */
    private Integer approveAlert;

    /**
     * 审批提醒内容
     */
    private String approveAlertContent;

    /**
     * 1 一级主管 2 二级主管 3 三级主管 4 四级主管 5 五级主管
     */
    private Integer level;

    /**
     * true 找不到主管时找上级主管
     */
    private Boolean cascade;
}
